package br.com.lacibMusic.bean;

import br.com.lacibMusic.entidades.Compositor;
import br.com.lacibMusic.rn.CompositorRN;
import java.io.Serializable;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;

@ManagedBean
@ViewScoped
public class CompositorBean implements Serializable {

    private CompositorRN compositorRN = new CompositorRN();
    private Compositor compositor = new Compositor();
    private List<Compositor> compositores;
    private String renderLista;

    public String getTitulo() {
        iniciarBean();

        return "Cadastro - Compositor";
    }

    public void iniciarBean() {
        compositores = compositorRN.obterTodos();
        renderLista = "0";
    }

    public CompositorBean() {
    }

    public Compositor getCompositor() {
        return compositor;
    }

    public void setCompositor(Compositor compositor) {
        this.compositor = compositor;
    }

    public CompositorRN getCompositorRN() {
        return compositorRN;
    }

    public void setCompositorRN(CompositorRN compositorRN) {
        this.compositorRN = compositorRN;
    }

    public List<Compositor> getCompositores() {
        if (compositores == null) {
            compositores = compositorRN.obterTodos();
        }
        return compositores;
    }

    public void setCompositores(List<Compositor> compositors) {
        this.compositores = compositors;
    }

    public void irExcluir() {
        renderLista = "2";
    }

    public void cancelar() {
        compositor = null;
        renderLista = "0";
    }

    public void voltar() {
        compositor = null;
        renderLista = "0";
    }

    public void novo() {
        compositor = null;
        if (compositor == null) {
            compositor = compositorRN.novo();
        }
        renderLista = "1";
    }

    public void salvar() {
        if (!compositorRN.obterPorNome(compositor.getNomeCompositor()).isEmpty()) {
            BeanUtil.criarMensagemDeErro("Erro ao salvar", "Verifique se já não existe compositor cadastrado com este nome.");
        } else {
            if (compositorRN.salvar(compositor)) {
                BeanUtil.criarMensagemDeInformacao("Operação Realizada com Sucesso", "Compositor Salvo na Lista");
            } else {
                BeanUtil.criarMensagemDeErro("Erro ao salvar", "O Compositor não pode ser salvo.");
            }
        }
        compositor = null;
    }

    public void excluir() {
        if (compositorRN.remover(compositor)) {
            BeanUtil.criarMensagemDeInformacao("Compositor Removido com sucesso.", "Compositor: " + compositor.getNomeCompositor());
        } else {
            BeanUtil.criarMensagemDeErro("Erro ao remover Compositor.", "O Compositor não pode ser removido.");
        }
        compositor = null;
        compositores = null;
        renderLista = "0";
    }

    public String getRenderLista() {
        return renderLista;
    }

    public void setRenderLista(String renderLista) {
        this.renderLista = renderLista;
    }
}
